﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ApuestaJMG.GUI.Contrato;
using Datos.Entidades;
using ApuestasJMG.GUI.Contrato;
using Logica.Comandos.AdministracionUsuarios;
using Datos.Entidades.FabricaEntidades;
using Logica.Comandos;
using Logica.FabricaLogica;
using System.Windows.Forms;
namespace ApuestasJMG.GUI.Presentador
{
    public class PresentadorModificarUsuario
    {
        private IContratoModificarUsuario _modificarUsuario;
        Entidad usuario = new Entidad();
        #region Constructor
        public PresentadorModificarUsuario(IContratoModificarUsuario modificarUsuario)
        {
            _modificarUsuario = modificarUsuario;
        }
        #endregion
        /// <summary>
        /// Metodo que se encarga de realizar la validacion
        /// de los datos
        /// </summary>
        /// <param name="estado"></param>
        /// <returns></returns>
        public bool Validacion(String estado)
         {
             bool respuesta = false;

             String nombre = _modificarUsuario.nombre.Text;
             String apellido = _modificarUsuario.apellido.Text;
             int cedula = int.Parse(_modificarUsuario.cedula.Text);
             String email = _modificarUsuario.email.Text;
             String clave = _modificarUsuario.clave.Text;
             Int64 telefono = Int64.Parse(_modificarUsuario.telefono.Text);
             String estatus = _modificarUsuario.estatus.Text;

             String login = _modificarUsuario.login.Text;



             DialogResult result;
             MessageBoxIcon mci = new MessageBoxIcon();

             if (estado.Equals("Inactivo"))
             {
                


                 string mensaje = ("Nombre : " + nombre + '\n' + "Apellido : " + apellido + '\n' + "Cedula : " + cedula + '\n'
                     + "Telefono :" + telefono + '\n' + " Email :" + email + '\n' + " Login: " + login + '\n'
                     + "Clave:  " + clave + '\n'
                     + '\n');

                 mci = MessageBoxIcon.Information;
                 MessageBox.Show(mensaje, "Validacion de datos",
                    MessageBoxButtons.OKCancel, mci);


          /*       result = MessageBox.Show("Nombre : " + nombre + '\n' + "Apellido : " + apellido + '\n' + "Cedula : " + cedula + '\n'
                + "Telefono :" + telefono + '\n' + " Email :" + email + '\n' + " Estado : " + estatus+ '\n'  + " Login: " + login + '\n'
                + "Clave:  " + clave + '\n'
                + '\n', "Validacion de datos ", MessageBoxButtons.OKCancel);
                 */

                 if (mci == System.Windows.Forms.MessageBoxIcon.Information)
                 {

                     result = MessageBox.Show(" Estado : " + estatus +'\n' + "El usuario sera eliminado ", "Validacion de datos ", MessageBoxButtons.OKCancel);

                     if (result == System.Windows.Forms.DialogResult.OK)
                     {
                         respuesta = true;

                     }

                     //return respuesta;
                 }
             }

             if (estado.Equals("Activo"))
             {

              /*   result = MessageBox.Show("Nombre : " + nombre + '\n' + "Apellido : " + apellido + '\n' + "Cedula : " + cedula + '\n'
                     + "Telefono :" + telefono + '\n' + " Email :" + email + '\n' + " Estado : " + estatus + '\n' + " Login: " + login + '\n'
                     + "Clave:  " + clave + '\n'
                     + '\n', "Validacion de datos ", MessageBoxButtons.OKCancel);
                 */

                 string mensaje = ("Nombre : " + nombre + '\n' + "Apellido : " + apellido + '\n' + "Cedula : " + cedula + '\n'
                     + "Telefono :" + telefono + '\n' + " Email :" + email + '\n' + " Login: " + login + '\n'
                     + "Clave:  " + clave + '\n'
                     + '\n');

                 mci = MessageBoxIcon.Information;
                 MessageBox.Show(mensaje, "Validacion de datos",

                    MessageBoxButtons.OKCancel, mci);

                 if (mci == System.Windows.Forms.MessageBoxIcon.Information)
                 {
                     respuesta = true;

                 }
                // return respuesta;
             }

             return respuesta;
         }
        /// <summary>
        /// Metodo que se encarga de mostrar el usuario
        /// </summary>
        /// <param name="Id"></param>
         public void MostrarUsuario(int Id)
         {
             
             Comando comando = FabricaComandoUsuario.ObtenerComandoConsultarUsuarioID();
             comando.Id = Id;
             (comando as ComandoConsultarUsuarioID).Ejecutar();
             usuario = comando.Entidad;
             _modificarUsuario.nombre.Text = (usuario as Usuario).Nombre;
             _modificarUsuario.apellido.Text = (usuario as Usuario).Apellido;
             _modificarUsuario.cedula.Text = (usuario as Usuario).Cedula.ToString();
             _modificarUsuario.email.Text = (usuario as Usuario).Email;
             _modificarUsuario.telefono.Text = (usuario as Usuario).Telefono.ToString();
             _modificarUsuario.login.Text = (usuario as Usuario).Login;
             _modificarUsuario.estatus.Text = (usuario as Usuario).Estatus;
             _modificarUsuario.clave.Text = (usuario as Usuario).Clave;
             
         }
        /// <summary>
        /// Metodo que se encarga de modificar el  usuario
        /// </summary>
        /// <param name="id"></param>
         public void ModificarUsuario(int id)
         {

           
             Entidad modificarUsuario = FabricaEntidades.ObtenerUsuario();


             (modificarUsuario as Usuario).Id_Usuario = id;
             (modificarUsuario as Usuario).Nombre = _modificarUsuario.nombre.Text;
             (modificarUsuario as Usuario).Apellido = _modificarUsuario.apellido.Text;
             (modificarUsuario as Usuario).Cedula = int.Parse(_modificarUsuario.cedula.Text);

             (modificarUsuario as Usuario).Telefono = Int64.Parse(_modificarUsuario.telefono.Text);
             (modificarUsuario as Usuario).Email = _modificarUsuario.email.Text;
             (modificarUsuario as Usuario).Clave = _modificarUsuario.clave.Text;
             (modificarUsuario as Usuario).Login = _modificarUsuario.login.Text;
             (modificarUsuario as Usuario).Estatus = _modificarUsuario.estatus.Text;


             Comando comandoUsuario = FabricaComandoUsuario.ObtenerComandoModificarUsuario();
             comandoUsuario.Entidad = modificarUsuario;
             Boolean respuestaUsuario = false;

             (comandoUsuario as ComandoModificarUsuario).Ejecutar();
             respuestaUsuario = comandoUsuario.Flag;
         

         }
    }
}